home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / coding / dsp / aib2xmpl.exe / AIC_ASM.ASM < prev    next >
Assembly Source File  |  1991-07-31  |  10KB  |  159 lines

  1. ;**************************************************************
  2. ;  
  3. ;                 aic_asm.asm
  4. ;  
  5. ;                 Jeffrey Schwartz
  6. ;  
  7. ;                 07-31-91
  8. ;  
  9. ;           (C) Texas Instruments Inc., 1992 
  10. ;  
  11. ;           Refer to the file 'license.txt' included with this 
  12. ;           this package for usage and license information. 
  13. ;  
  14. ;**************************************************************
  15. ******************************************************************************
  16. *                                                                            *
  17. *                        TMS320C25 AIC LOOPBACK TEST                         *
  18. *                                                                            *
  19. * AUTHOR: Jeffrey Schwartz                                                   *
  20. *         DSP Applications                                                   *
  21. *         Texas Instruments                                                  *
  22. *                                                                            *
  23. * THIS PROGRAM READS A VALUE FROM THE AIC AND WRITES IT BACK OUT TO THE AIC. *
  24. *                                                                            *
  25. * TO RUN THIS PROGRAM ON THE XDS/22, A TI-TAGGED FILE MUST BE CREATED FROM   *
  26. * THIS FILE.  AFTER INITIALIZING YOUR COMMUNICATION PROGRAM FOR USE WITH THE *
  27. * XDS/22, BE SURE TO USE THE ITR COMMAND TO ALLOW THE ONBOARD PROGRAM RAM    *
  28. * AND DATA RAM TO RESPOND TO MEMORY-ACCESS CYCLES BEFORE DOWNLOADING.  TO    *
  29. * RUN THIS PROGRAM ON THE SWDS, A .OUT FILE MUST BE CREATED.  IN             *
  30. * BOTH CASES, THE FILES MUST BE LINKED WITH A .CMD FILE WHICH ALLOCATES      *
  31. * THE "ORG" SECTION OF MEMORY.                                               *
  32. *                                                                            *
  33. * BEFORE THE ACTUAL DATA IS TRANSMITTED, THE BANDPASS FILTER IN THE AIC IS   *
  34. * BYPASSED.  THIS IS DONE WITH SECONDARY COMMUNICATION.  A WORD ENDING IN    *
  35. * TWO HIGH BITS (03h) IS SENT TO THE DATA TRANSMIT REGISTER (DXR) TO         *
  36. * SIGNAL THAT SECONDARY COMMUNICATION IS TO OCCUR.  TO BYPASS THE BANDPASS   *
  37. * FILTER, THE NEXT WORD THAT IS SENT MUST ALSO END IN TWO HIGH BITS, AND IT  *
  38. * MUST HAVE BIT TWO SET TO ZERO (000E3h).  SUBSEQUENT DATA TRANSFERS ARE     *
  39. * THEN SENT WITH THE LAST TWO BITS SET TO ZERO (ANDK 0FFFCh), SO THAT THEY   *
  40. * ARE NOT MISINTERPRETED AS SIGNALS OF OR AS SECONDARY COMMUNICATION.  FOR   *
  41. * MORE INFORMATION, SEE LINEAR CIRCUITS VOLUME 2 DATA ACQUISTION AND         *
  42. * CONVERSION, PP. 2-247 - 2-276.                                             *
  43. *                                                                            *
  44. *     |<-----------------t ------->|<-----------------t ------->|            *
  45. *       ______    ______  S          ______            S          ______     *
  46. * _____/  03  \__/  E3  \___________/ DATA0\_____________________/ DATA1\___ *
  47. *      \______/  \______/           \______/                     \______/    *
  48. *                                                                            *
  49. *     _    ______    _______________    _________________________    _______ *
  50. * FSX  |__|      |__|               |__|                         |__|        *
  51. *                                                                            *
  52. *     PRIMARY    SECONDARY         PRIMARY                      PRIMARY      *
  53. * TRANSMISSION TRANSMISSION      TRANSMISSION                 TRANSMISSION   *
  54. *                                                                            *
  55. * VARIOUS SETTINGS OF JUMPERS E8 AND E9 CAN BE USED TO ALLOW THE INPUT AND   *
  56. * OUTPUT SIGNALS TO BE WRITTEN TO AND READ FROM DIFFERENT AUDIO CONNECTOR    *
  57. * JACKS.  THE SETTINGS BELOW WORK WITH THE INPUT BEING AT SIGNAL NODE        *
  58. * CAIN (P3), AND THE OUTPUT AT NODE COUT (P4).                               *
  59. *                                                                            *
  60. * WITHOUT PROPER SETTING OF THE OTHER JUMPERS, THE AIB2 MAY NOT WORK WITH    *
  61. * THIS PROGRAM.  THE PROPER SETTINGS ARE AS FOLLOWS:                         *
  62. *                                                                            *
  63. *                                                                            *
  64. *        AIB2 JUMPER SETTINGS                                                *
  65. * JUMPER   SETTING     JUMPER DESCRIPTION                                    *
  66. *   E1       OFF       ;MC/MP select A=MP(Vcc) B=MC(GND) >> WARNING! <<      *
  67. *   E2       A         ;A:INT0, B:INT1, C:INT2                               *
  68. *   E3      B-C        ;A:BIOZ, B:INT , C:Use C17 and AIC together           *
  69. *   E4       A         ;A:End of conversion, B:Sample rate clock             *
  70. *   E5       B         ;A:Bypass S/H, B:Use sample and hold                  *
  71. *   E6       A         ;A:20V range, B:10V range                             *
  72. *   E7       ON        ;ON:Connects analog and digital ground                *
  73. *   E8       B         ;A:A/D for input, B:Codec/AIC for input               *
  74. *   E9       OFF       ;A:Input anti-alias filter, B:Bypass anti-alias       *
  75. *  E10       OFF       ;ON:Connect Vcc to C10/15                             *
  76. *  E11       A         ;EPROM type select (see AIB manual)                   *
  77. *  E12       A         ;A:Start conv. on sample rate clk, B:start on A/D read*
  78. *  E13       A         ;EPROM type select (see AIB manual)                   *
  79. *  E14       OFF       ;If installed, supplies 8khz frame synch to CODEC     *
  80. *  E15       A         ;EPROM type select (see AIB manual)                   *
  81. *  E16       OFF       ;If installed, supplies 2.048 Mhz clock to CODEC      *
  82. *  E17       OFF       ;ON: AIC in byte mode  OFF:AIC in word mode           *
  83. *  E18       OFF       ;ON: ties FSR & FSX together for CODEC operation      *
  84. *  E19       OFF       ;ON: ties FSR & FSX to C17 FSR                        *
  85. *  E20       B         ;A:select audio power amp  B:bypass amplifier         *
  86. *  E21       A or B    ;A:bypass smoothing filter for P2 output B: add filter*
  87. *  E22       B         ;A:16 bit DAC as P2 output B:CODEC/AIC as output      *
  88. *  E23       OFF       ;A:generate clock B:use emulator clock                *
  89. *  E24       ON        ;ON:1 I/O wait state   OFF:No I/O wait state          *
  90. *  E25       OFF       ;ON:use program wait states OFF:No program wait states*
  91. *  E26       OFF       ;ON:2 program wait states OFF:0 or 1 prog wait states *
  92. *  E27       OFF       ;ON:2 I/O wait states OFF:1 or 2 I/O wait states      *
  93. *  E28       ON        ;ON:connects V+ to TB1  OFF:disconnects V+            *
  94. *  E29       ON        ;ON:connects V- to TB1  OFF:disconnects V-            *
  95. *  E30       B         ;A:Use 2792 EPROM  B:standard EPROM                   *
  96. *  E31       B         ;A:Use 2792 EPROM  B:standard EPROM                   *
  97. *  E32       B         ;A:Use 2792 EPROM  B:standard EPROM                   *
  98. *  E33       B         ;A:Use 2792 EPROM  B:standard EPROM                   *
  99. *  E34       OFF       ;ON:connects DX0 and DX1 of C17 (second serial port)  *
  100. *  E35       OFF       ;ON:connects DR0 and DR1 of C17 (second serial port)  *
  101. *                                                                            *
  102. *  NOTE THAT SOME OF THESE SETTINGS, SUCH AS THOSE FOR EPROM CONFIGURATION   *
  103. *  ARE UNNECESSARY FOR THIS APPLICATION.                                     *
  104. ******************************************************************************
  105.  
  106.  .global  _AIC_SET
  107.  
  108. DRR   .set    0
  109. DXR   .set    1
  110. IMR   .set    4
  111.  
  112.  .sect "ORG"
  113.         B     START             ; RESET VECTOR
  114.         B     START             ; RESET VECTOR
  115.         B     START             ; RESET VECTOR
  116.         B     START             ; RESET VECTOR
  117.  .space 16*16
  118.         B     START             ; RESET VECTOR
  119.         B     RINT_ISR          ; RECEIVE INTERRUPT
  120.         B     XINT_ISR          ; TRANSMIT INTERRUPT
  121.         B     START             ; RESET VECTOR
  122. *
  123. * SERIAL PORT RECEIVE INTERRUPT SERVICE ROUTINE
  124. * THIS ROUTINE READS THE SERIAL DATA FROM THE AIC AND WRITES IT BACK OUT
  125. * TO THE AIC
  126. *
  127. *
  128. START   DINT                    ; DISABLE INTERRUPTS
  129. *
  130. * CONFIGURE SERIAL PORT
  131. *
  132.         SFSM                    ; SET FRAME SYNC MODE (EXTERNAL FSR-)
  133.         RTXM                    ; RESET TRANSMIT MODE (FSX- INPUT)
  134.         FORT  0                 ; SET 16-BIT WORDS
  135.         SSXM                    ; SET SIGN EXTENSION MODE
  136.  
  137.         LDPK  0                 ; IMR IS LOCATED IN DATA PAGE 0
  138.         LACK  020h              ; 020h IS THE MASK THAT ALLOWS XINT
  139.         SACL  IMR               ; STORE THE MASK IN THE IMR
  140.         LALK  03h               ; LOAD TRANSMIT BUFFER W/SIGNAL TO
  141.         SACL  DXR               ; START SECONDARY TRANSMISSION
  142.         IDLE                    ; WAIT FOR INT AFTER COMPLETE TRANSMISSION
  143.         LALK  000E3h            ; LOAD TRANSMIT BUFFER W/INITIALIZATION
  144.         SACL  DXR               ; BYPASS BANDPASS FILTER
  145.         IDLE                    ; WAIT FOR INT AFTER COMPLETE TRANSMISSION
  146.         LACK  010h              ; 010h IS THE MASK THAT ALLOWS RINT
  147.         SACL  IMR               ; STORE THE MASK IN THE IMR
  148.  
  149. MORE    IDLE                    ; WAIT FOR NEXT SIGNAL--PROGRAM SERVICES
  150.         B     MORE              ; RINT_ISR WHEN IT IS RECEIVED
  151.  
  152. XINT_ISR RET
  153.  
  154. RINT_ISR LAC  DRR               ; INPUT IS LOADED IN DRR
  155.          ANDK 0FFFCh            ; TWO LSBS ARE ZEROED TO PREVENT 2NDARY COMM
  156.          SACL DXR               ; DATA IS SENT TO DXR
  157.          RET                    ; RETURN TO PROGRAM (MORE)
  158.         .end
  159.